1. Field of the Invention
The present invention relates to a method for a node on a network to obtain an application. More specifically, the present invention relates to a method for a node connected to a network such as an LAN (Local Area Network) connected through a gateway to a digital communication network such as the Internet, to obtain an application program from another node or a site.
2. Description of the Background Art
For communication between nodes connected to a network such as the LAN, generally, each node functions as a client server model. Generally, it is necessary for each node to obtain a server application or a client application before starting communication.
For example, in a network adapted for a specific standard enabling plug-and-play at home, the following method is commonly used to enable communication between appliances serving as nodes connected to the; network. More specifically, assuming that the communication takes place between two nodes, one node has a client program and a server program as a package. The other node receives one of the client program and the server program, whichever necessary, from the other node, and by the operation of the received program, communication with the aforementioned the other node is established.
In the above described technique, however, it is necessary that the appliance serving as one node must have the client program and the server program both installed. When the appliance actually operates only as a server and never operates as a client, installment of the client program in that appliance is unnecessary and wastes valuable storage area. Further, as the server program and the client program are held in the appliance at the time of shipment, the versions of these programs are determined at the time of shipment. As a result, there is a possibility that the latest program is not available for actual communication. If a software defect should be found after shipment or if the new version of the software is issued, it may be difficult to update the software.
For a home network, there is another problem as follows. In the home network, various and many appliances are supposed to provide applications or services specialized for respective appliances. This means that a client program or a server program particularly adapted for the special service is necessary. A server connected for the first time to the network cannot immediately know the existence of a node connected to the network that will serve as the client. Similarly, a node serving as a client that has been connected to the network cannot know that the new server is connected to the network, or what service would be provided by the server. It is still more difficult for each node to know in advance what client program is necessary to communicate with the server and from where such a client program can be obtained.
In the home network environment, it is necessary to ensure the so-called “plug-and-play” that does not require complicated operations of the user. More specifically, it is necessary that the server node and the client node on the home network obtain necessary programs respectively, so that communication can be started, when the server is connected to the home network.
A measure to solve such a problem should not cause excessive traffic on the network, and a situation in which such a solution imposes excessive load on a specific host must also be avoided.
Further, in order that communication can be started as soon as possible after the necessity of communication arises between a certain server and a client, it is desirable that each client or the server must hold the latest program as needed, or each client or the server is kept ready to obtain such a latest program when it becomes necessary. It has been difficult, however, by the conventional method.
Conventionally, even when the operating environment of a client is poor, it has been necessary to operate a dedicated client program on the client in order for the client to communicate with a certain server, and it does not matter how much resources are required. Accordingly, it has been the case that excessive load is imposed on some client nodes, or desired processing was not possible. The same applies to the server program. Namely, it is expected that the number of clients served by the server is small and the server does not have much resource. Even in such a case, if a large server program has been prepared in advance, the server must execute the program. This causes excessive load on the server node, hindering normal service.